package program_structure;

import java.util.Scanner;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/8/22 23:24
 */
public class ProgramHomeWork {
    public static void main(String[] args) {
        //1.输出 1000 - 2000 之间所有的闰年
//        int sum =0 ;
//        for (int i = 1000; i <= 2000; i++) {
//            if(i%100==0){
//                //世纪闰年
//                if(i%400==0){
//                    System.out.print(i+"、");
//                    sum++;
//                }
//            }else{
//                //普通闰年
//                if(i%4==0){
//                    System.out.print(i+"、");
//                    sum++;
//                }
//            }
//        }
//        System.out.println();
//        System.out.println("1000 - 2000 之间共有闰年："+sum+"个！");
        //2.编写代码模拟三次密码输入的场景。
        // 最多能输入三次密码，密码正确，提示“登录成功”,
        // 密码错误， 可以重新输 入，最多输入三次。三次均错，则提示退出程序
//        System.out.println("请设置密码：");
//        Scanner scanner = new Scanner(System.in);
//        String password = scanner.nextLine();
//        int chance =3;
//        while(chance>0){
//            System.out.println("请输入密码：");
//            String inPassWord = scanner.nextLine();
//            if(inPassWord.equals(password)){
//                System.out.println("登录成功！");
//                break;
//            }else{
//                System.out.println("密码错误！");
//            }
//            chance--;
//        }
//        System.out.println("次数用完，退出程序！");
        //3.创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
        //要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
//        int num1 =10,num2=20,num3=30;
//        System.out.println(max3(num1,num2,num3));
        //4.求 N 的阶乘 。
//        System.out.println("请输入一个数：");
//        Scanner scanner = new Scanner(System.in);
//        int n =scanner.nextInt();
//        int num =1;
//        int sum =1;
//        while (num<=n){
//            sum*=num;
//            num++;
//        }
//        System.out.println(sum);
        //5.求1！+2！+3！+4！+........+n!的和
//        System.out.println("请输入一个数：");
//        Scanner scanner = new Scanner(System.in);
//        int n =scanner.nextInt();
//        int factorNum ;
//        int sum =0;
//        for (int i = 1; i <= n; i++) {
//            factorNum = 1;
//            for (int j = 1; j <= i; j++) {
//                factorNum*=j;
//            }
//           sum+=factorNum;
//        }
//        System.out.println(sum);
        //6.在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
//        System.out.println(add(10,20));
//        System.out.println(add(10.0,20.0,20.0));
        //7.在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值？
        System.out.println(max(10, 20));
        System.out.println(max(10.2, 22.3, 3.1));
    }

    public static int max(int num1, int num2) {
        return num1 > num2 ? num1 : num2;
    }

    public static double max(double num1, double num2, double num3) {
        double maxNum12 = num1 > num2 ? num1 : num2;
        return maxNum12 > num3 ? maxNum12 : num3;
    }

    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    public static double add(double num1, double num2, double num3) {
        return num1 + num2 + num3;
    }

    static int max2(int num1, int num2) {
        return num1 > num2 ? num1 : num2;
    }

    static int max3(int num1, int num2, int num3) {
        return max2(max2(num1, num2), num3);
    }
}
